package cate.game.role.res.call.advance;

import cate.common.table.d.GD;
import cate.game.role.Role;
import cate.game.role.res.call.CallBasePO;
import cate.game.role.res.call.CallCommonBaseHandler;
import cate.game.role.res.call.base.CallProcessData;

public class CallAdvanceHandler extends CallCommonBaseHandler {

  @Override
  public boolean callPreCheck(Role role, CallProcessData processData, CallBasePO basePO) {
    if (!basePO.tool.checkVip(role, processData.base)) {
      return false;
    }

    if (processData.checkMad()) {
      if (role.getBag().hero.gridEmpty() <= GD.INT_0) {
        role.getGame().notice.message(role, 310222, "英雄背包空间不足");
        return false;
      }
    } else if (!basePO.tool.checkBag(role, role.getBag().hero, processData.base)) {
      return false;
    }

    //免费刷新间隔检查,需要记录在不同模块数据自行检查
    if (basePO.tool.checkFree(processData, basePO)) {
      basePO.tool.costFreeReset(basePO);
      return true;
    }

    // 积分检测
    if (basePO.tool.checkScore(role, processData)) {
      basePO.tool.costScore(role, processData);
      return true;
    }

    // 友情点检测
    if (basePO.tool.checkFriendPoint(role, processData)) {
      return true;
    }

    //召唤券检测
    if (basePO.tool.checkCostHaveMad(role, processData)) {
      return true;
    }
    role.getGame().notice.message(role, 310203, "道具不足");
    return false;
  }

}
